package com.weijian.dto.data;

import com.weijian.dal.enums.ChartType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;
import java.util.Map;

/**
 * 图表数据DTO
 * 封装查询结果为通用的图表数据结构，支持多种图表类型渲染
 *
 * @author miaoma
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ChartData {

    /**
     * 推荐的图表类型
     * 基于数据特征智能推荐最合适的可视化方式
     */
    private ChartType recommendedChart;

    /**
     * 可选的图表类型列表
     * 按推荐优先级排序，用户可手动切换
     */
    private List<ChartType> alternativeCharts;

    /**
     * 列元数据
     * 描述每一列的数据特征和类型信息
     */
    private List<ChartColumn> columns;

    /**
     * 数据行
     * 每一行数据表示为Map，key为列名，value为列值
     */
    private List<Map<String, Object>> rows;

    /**
     * 数据行数
     */
    private Integer rowCount;

    /**
     * 图表配置建议（可选）
     * 存储图表渲染的额外配置参数，如颜色方案、坐标轴设置等
     */
    private Map<String, Object> chartConfig;
}
